package com.redis.sample.rate.limit;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimit {

  /**
   * 限流阈值
   * @return
   */
  int value();

  /**
   * 限流时间窗口
   * @return
   */
  long duration();

  /**
   * 限流维度，默认为全局维度
   * @return
   */
  String limitKey() default "global";

}